import request from '@/api/request';

// 登陆接口
function pwdLogin(data) {
	return request({
		method: "POST", // 请求方式
		url: 'login/', // 请求url
		data: data // 参数
	})
}
// 获取学生信息
function getUserInfo(token) {
	return request({
		method: "get", // 请求方式
		url: 'user/', // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		}
	})
}
// 修改用户账号密码（学生和教师均可使用）
function changeInfo(token, id, data) {
	return request({
		method: "put", // 请求方式
		url: `user/${id}/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
		data: data // 参数
	})
}
// 获取资讯接口
function getNoti(token) {
	return request({
		method: "get", // 请求方式
		url: 'info/', // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
	})
}

// 获取资讯详情接口
function getNotiById(token, id) {
	return request({
		method: "get", // 请求方式
		url: `info/${id}/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
	})
}

// 管理员删除资讯接口
function delNotiById(token, id) {
	return request({
		method: "delete", // 请求方式
		url: `infos/${id}/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
	})
}

// 管理员添加资讯接口
function postNoti(token, data) {
	return request({
		method: "post", // 请求方式
		url: `infos/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
		data: data
	})
}

function updateNoti(token, data, id) {
	return request({
		method: "put", // 请求方式
		url: `infos/${id}/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
		data: data
	})
}
// 获取学生成绩接口
function getScore(token) {
	return request({
		method: "get", // 请求方式
		url: `score/?score=true`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
	})
}

// 获取选课接口
function getSelect(token) {
	return request({
		method: "get", // 请求方式
		url: `select/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
	})
}

// 学生选课接口
function selectClass(token, data) {
	return request({
		method: "post", // 请求方式
		url: `select_s/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
		data: data
	})
}

// 学生获得已选课程接口
function getClass(token) {
	return request({
		method: "get", // 请求方式
		url: `score/?select=true`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
	})
}

// 学生删除选课接口
function deleClass(token, id) {
	return request({
		method: "delete", // 请求方式
		url: `select_s/${id}/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
	})
}

// 管理员添加新课程接口
function addCourse(token, data) {
	return request({
		method: "post", // 请求方式
		url: `courses/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
		data: data
	})
}

// 教师获取课程表接口
function getSelectClass(token) {
	return request({
		method: "get", // 请求方式
		url: `selects/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		}
	})
}

// 教师获取某课程成绩表接口
function getClassScore(token, selectId) {
	return request({
		method: "get", // 请求方式
		url: `scores/?select_id=${selectId}`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		}
	})
}

// 设置学生成绩接口
function setScore(token, id, data) {
	return request({
		method: "put", // 请求方式
		url: `scores/${id}/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
		data: data
	})
}

function searchSelect(token, value) {
	return request({
		method: "get", // 请求方式
		url: `search/?q=${value}&name=select`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		}
	})
}

function searchCourse(token, value) {
	return request({
		method: "get", // 请求方式
		url: `search/?q=${value}&name=course`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		}
	})
}

function searchTeacher(token, value) {
	return request({
		method: "get", // 请求方式
		url: `search/?q=${value}&name=user`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		}
	})
}

function deleSelect(token, id) {
	return request({
		method: "delete", // 请求方式
		url: `selects/${id}`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		}
	})
}

function getTeacherClass(token) {
	return request({
		method: "get", // 请求方式
		url: `teacherCourse/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
	})
}

function getTeacherClassByID(token, id) {
	return request({
		method: "get", // 请求方式
		url: `teacherCourse/${id}/`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
	})
}

function getStudentScoreByTeacher(token, selectId, studentId) {
	return request({
		method: "get", // 请求方式
		url: `teacherScore/?studentId=${studentId}&selectId=${selectId}`, // 请求url
		header: {
			'Authorization': 'JWT ' + token // 参数
		},
	})
}
export default {
	pwdLogin,
	getUserInfo,
	changeInfo,
	getNoti,
	getNotiById,
	postNoti,
	delNotiById,
	getScore,
	getSelect,
	selectClass,
	getClass,
	deleClass,
	addCourse,
	getSelectClass,
	getClassScore,
	setScore,
	searchSelect,
	searchCourse,
	deleSelect,
	searchTeacher,
	updateNoti,
	getTeacherClass,
	getTeacherClassByID,
	getStudentScoreByTeacher
}
